<?php

namespace App\Api\Old;

use PhalApi\Api;
use PhalApi\Exception\BadRequestException;
use PhpOffice\PhpWord\TemplateProcessor;
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

/**
 * Hema
 * @desc 刺客信条
 */
class Hema extends Api
{
    


    public function getRules()
    {
        return array(
            'price' => array(),
        );
    }

    /**
     * 批量更新hmsshuju表中int_price为0.01的数据，将其替换为vip字段中的价格数值
     * @desc 查询并批量更新hmsshuju表的int_price字段
     * @return array 更新结果数组
     * @example
     * // 请求
     * // POST /?service=Old.Hema.Price
     * // 返回
     * // [1, 1, ...]  // 每条数据的更新结果
     */
    public function price(){
        // 1. 构造查询条件，查找int_price为0.01的数据
        $where = array(
            'city' => '深圳', // 可根据实际需求调整或去掉city条件
            'int_price' => 0.01
        );

        // 2. 查询所有符合条件的数据
        $prices = \PhalApi\DI()->notorm
            ->hmsshuju
            ->where($where)
            ->fetchAll();

        // 3. 如果有数据则进行批量更新
        if($prices ){
            $res = array();
            foreach($prices as $k => $v){
                // 提取vip价格中的数字和小数点，如 "¥7.2" => "7.2"
                $vipValue = $v['vip'] ?? '';
                $priceNum = preg_replace('/[^\d.]/', '', $vipValue);
                // 转换为浮点数并保留两位小数
                $priceNum = number_format((float)$priceNum, 2, '.', '');
                // 更新int_price字段
                $updateResult = \PhalApi\DI()->notorm
                    ->hmsshuju
                    ->where('id', $v['id'])
                    ->update(array('int_price' => $priceNum));
                $res[] = [
                    'id' => $v['id'],
                    'old_price' => $v['int_price'],
                    'vip' => $vipValue,
                    'new_price' => $priceNum,
                    'update_result' => $updateResult
                ];
            }
            // 设置响应信息
            \PhalApi\DI()->response->setMsg('success');
            \PhalApi\DI()->response->setRet(200);
            return $res;
        } else {
            // 没有需要更新的数据
            \PhalApi\DI()->response->setMsg('没有需要更新的数据');
            \PhalApi\DI()->response->setRet(204);
            return [];
        }
    }

    

}
